package com.javachmapi.pay.util;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.*;

import java.io.File;
import java.util.Date;
import java.util.Iterator;

@Slf4j
public class FileUtil {

    /**
     * 清理目录中过期的文件
     *
     * @param dirPath 文件路径
     * @param ms      时间 /毫秒
     */
    public static void cleanTimeoutFile(String dirPath, long ms) {
        // 该日期之前的文件
        Date pointDate = new Date(System.currentTimeMillis() - ms);
        // 文件过滤条件
        IOFileFilter timeFileFilter = FileFilterUtils.ageFileFilter(pointDate, true);
        IOFileFilter fileFiles = new AndFileFilter( FileFileFilter.FILE, timeFileFilter);
        File directory = new File(dirPath);
        Iterator<File> itFile = FileUtils.iterateFiles(directory, fileFiles, TrueFileFilter.INSTANCE);
        // 删除符合条件的文件
        while (itFile.hasNext()) {
            delete(itFile.next());
        }
    }

    /**
     * 删除
     *
     * @param file
     */
    public static void delete(File file) {
        boolean result = file.delete();
        if (result) {
            log.info("删除: {} 成功", file.getAbsolutePath());
        } else {
            log.warn("删除: {} 失败", file.getAbsolutePath());
        }
    }

    public static void main(String[] args) {
        cleanTimeoutFile("D://poster", 1000 * 60 * 60);
    }

}
